/**
 * Clase que descarga informaci�n desde internet
 * 
 * @author HPCIII_Team2013
 */

package cl.ucn.hpc.descarga;

import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class Download implements Serializable {
        //Creado automaticamente por java para clases serializables
        private static final long serialVersionUID = 3193736026167175612L;

        /**
         * Constructor de la clase
         */
        public Download() {

        }

        /**
         * Obtiene el contenido integro de la pagina descargada.
         * 
         * @param url Link de la pagina a descargar.
         * @return Pagina completa con sus anotacions HTML incluidas.
         * @throws MalformedURLException Si no se encontro la pagina.
         * @throws IOException Si no puede crear el InputStream.
         */
        public static InputStream fetch(final String url) throws IllegalArgumentException, MalformedURLException, IOException {
                URL u = new URL(url);
                URLConnection urlCon = u.openConnection();
                return urlCon.getInputStream();
        }

        /**
         * Obtiene el nombre de la pagina entregada.
         * 
         * @param url Link de la pagina solicitada.
         * @return Nombre de la pagina.
         * @throws MalformedURLException Si no se encontro la pagina.
         */
        public static String host(final String url) throws MalformedURLException {
                URL u = new URL(url);
                return u.getHost();
        }
}
